/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.deployment.manager;

import br.com.deployment.entidade.localidade.Endereco;
import br.com.deployment.entidade.empresa.Fornecedor;
import br.com.deployment.message.Msg;
import br.com.deployment.servico.FornecedorServico;
import br.com.deployment.utilitario.TipoLogradouro;
import java.io.IOException;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.faces.model.SelectItem;

/**
 *
 * @author roniere
 */
@ManagedBean
@SessionScoped
public class ManagerFornecedor implements Serializable {

    @EJB
    FornecedorServico fornecedorServico;
    
    private Fornecedor fornecedor;
    private Endereco endereco;

    public ManagerFornecedor() {  }

    @PostConstruct
    public void init() {
        fornecedor = new Fornecedor();
        endereco = new Endereco();
    }

    public void reinit() {
        fornecedor = new Fornecedor();
        endereco = new Endereco();
    }

    
    public void salvar() {
        this.fornecedor.setEndereco(this.endereco);
        fornecedorServico.salvar(fornecedor);
        Msg.messagemInfo("Fornecedor Salvo com Sucesso ");
        reinit();
    }

   
    public List<Fornecedor> completeFornecedor(String query) {
        List<Fornecedor> suggestions = new ArrayList<Fornecedor>();
        List<Fornecedor> bd = new ArrayList<Fornecedor>();


        Fornecedor fornecedor = new Fornecedor();
        fornecedor.setNome(query);
        bd = fornecedorServico.findFornecedor(fornecedor);

        for (Fornecedor p : bd) {
            suggestions.add(p);
        }

        return suggestions;

    }

    
    public void redirect(String string) {
        try {
            FacesContext context = FacesContext.getCurrentInstance();
            reinit();
            context.getExternalContext().redirect(string);
        } catch (IOException ex) {
            Logger.getLogger(ManagerImovel.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public SelectItem[] selectItemTipoLogradouro() {
        SelectItem[] items = new SelectItem[TipoLogradouro.values().length];
        int i = 0;
        for (TipoLogradouro tipo : TipoLogradouro.values()) {
            items[i++] = new SelectItem(tipo);
        }
        return items;
    }
    
     public Fornecedor getFornecedor() {
        return fornecedor;
    }

    public void setFornecedor(Fornecedor fornecedor) {
        this.fornecedor = fornecedor;
    }

    public Endereco getEndereco() {
        return endereco;
    }

    public void setEndereco(Endereco endereco) {
        this.endereco = endereco;
    }
}
